package cn.com.surker.base.strength.service;

import cn.com.surker.base.strength.entity.BaseStrength;
import cn.com.surker.base.strength.entity.BaseStrengthOrg;
import cn.com.surker.base.strength.vo.BaseStrengthVo;
import cn.com.surker.dto.main.BaseStrengthQueryDTO;
import cn.com.surker.spring.RestResultDto;
import cn.com.surker.vo.strength.BaseStrengthVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * @Author lucky
 * @create 2024年07月09 17:09
 * @desc
 */
public interface StrengthBaseService extends IService<BaseStrength> {

	/**
	 * 分页查询标号
	 * @param searchVal
	 * @param offset
	 * @param limit
	 * @return
	 */
	IPage findPage(String searchVal, Integer type, Integer offset, Integer limit);

	/**
	 * 根据公司关联标号分页查询
	 * @param searchVal
	 * @param orgId
	 * @param type
	 * @param offset
	 * @param limit
	 * @return
	 */
	IPage findPageV1(String searchVal, Long orgId, Integer type, Integer status, Integer offset, Integer limit);

	/**
	 * 添加关联公司信息
	 * @param id 标号ID
	 * @param orgId
	 * @param isInfo
	 * @param isDisplay
	 * @param remark
	 * @param creator
	 * @return
	 */
	RestResultDto saveV1(Long id, Long orgId, Integer isInfo, Integer isDisplay, Integer transportType, String remark, String creator);

	/**
	 * 修改标号信息
	 * @param id
	 * @param isInfo
	 * @param isDisplay
	 * @param remark
	 * @param creator
	 * @return
	 */
	RestResultDto updateV1(Long id, Long orgId, Integer isInfo, Integer isDisplay, Integer transportType, String remark, String creator);

	BaseStrengthVo findById(Long id);

    List<BaseStrength> findAll();

	/**
	 * 根据公司ID查询标号
	 * @param orgId
	 * @return
	 */
	List<BaseStrength> findByOrg(Long orgId);

	/**
	 * 查询列表
	 *
	 * @param strength
	 * @return
	 */
	List<BaseStrength> findList(String strength);

	//	根据erpid查询数据
	@Deprecated
	BaseStrength findByErpId(Long originId, Long erpId);

	@Deprecated
	BaseStrengthOrg findByErpStrength(Long originId, Long strengthId);

	/**
	 * 根据销售合同,查询合同下的列表
	 *
	 * @param conId
	 * @return
	 */
	List<BaseStrength> findBySaleCon(Long conId);

	/**
	 * 保存强度等级
	 * @param strength
	 * @return
	 */
	RestResultDto saveStrength(BaseStrength strength);

	/**
	 * 更新强度等级
	 * @param strength
	 * @return
	 */
	RestResultDto updateStrength(BaseStrength strength);

    IPage<BaseStrengthVO> pageData(BaseStrengthQueryDTO dto);

	/**
	 * 设置砼运输类型
	 * @param ids
	 * @param type transporttype 枚举
	 * @param creator
	 * @return
	 */
	RestResultDto updateTransportType(String ids, Integer type, String creator);

	/**
	 * 定时任务更新标号容重
	 * @return
	 */
	RestResultDto updateLevelDosage();
}

